*{
    /* 初始化 */
    margin: 0;
    padding: 0;
}
body{
    /* 100%窗口高度 */
    min-height: 100vh;
    /* 弹性布局 水平+垂直居中 */
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000;
    /* 自定义属性 可以通过var函数对其进行一个调用 */
    --c:gold;
}

.loader{
     /* 弹性布局 水平+垂直居中 排列*/
     display: flex;
     align-items: center;
     flex-direction: column;
     justify-content: center;
    /* 执行颜色改变对话 */
     animation: changeColor 5s linear infinite;
}

.dot-box{
    display: flex;
}

.dot-box .dot{
    width: 20px;
    height: 20px;
    border-radius: 50%;
    /* 通过var函数调用自定义属性--c，设置颜色 */
    background-color: var(--c);
    margin: 20px 10px;
    /* 阴影发光效果 */
    box-shadow: 0 0 10px var(--c),
    0 0 20px var(--c),
    0 0 40px var(--c),
    0 0 60px var(--c),
    0 0 80px var(--c),
    0 0 100px var(--c);
    /* 默认缩小为0.1倍 */
    transform: scale(0.1);
    /* 设置动画：动画名 时长 线性 无限播放 */
    animation: dotAnimate 2s linear infinite;
    animation-delay: calc(0.1s * var(--i));
}
.loader p{
    color: var(--c);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: 5px;
}

.dot-box:nth-child(3) .dot{
    /* 设置下面一排圆点的动画延迟时间 */
    animation-delay: calc(-0.1s * var(--i));
}

/* 定义动画 */
/* 圆点的动画 */
@keyframes dotAnimate{
    0%{
        /* 设置缩放 */
        transform: scale(0.1);
    }
    10%{
        transform: scale(1);
    }
    50%,100%{
        transform: scale(0.1);
    }
}

/* 颜色改变的动画 */
@keyframes changeColor{
    0%{
        /* 颜色滤镜 */
        filter: hue-rotate(0deg);
    }
    100%{
        filter: hue-rotate(360deg);
    }
}
